using System;
using System.Collections.Generic;
using LinFu.IoC.Configuration;

namespace CoreEx.Samples.DomainModel.Implementation
{
    /// <summary>
    /// 
    /// </summary>
	[Implements(typeof(IOrder))]
	[Serializable]
	public class Order : IOrder
	{

		#region Private Members

		private readonly IList<IOrderDetail> _orderDetails = new List<IOrderDetail>();

		#endregion

		public int OrderID { get; set; }
        public int OrderID2 { get; set; }
		public DateTime? OrderDate { get; set; }
		public DateTime? RequiredDate { get; set; }
		public DateTime? ShippedDate { get; set; }
		public decimal? Freight { get; set; }
		public string ShipName { get; set; }
		public string ShipAddress { get; set; }
		public string ShipCity { get; set; }
		public string ShipRegion { get; set; }
		public string ShipPostalCode { get; set; }
		public string ShipCountry { get; set; }


        
        public IList<IOrderDetail> OrderDetails 
		{
			get { return _orderDetails; }
		}


        /// <summary>
        /// Gets or sets the customer.
        /// </summary>
        /// <value>The customer.</value>
        public ICustomer Customer { get; set;}
		
        public IEmployee Employee { get; set;}
		public IShipper Shipper { get; set;}
	}
}
